Presently, when software content is delivered to an enterprise, the software contains rules for controlling the data on which the software operates and the data flow as well as the modifications that can be made to the software by a user or another third-party. The software developer/provider typically provides rules that are delivered with a default definition or content. The rule content can be, for example, the result if a certain event occurs or when a value equals a predetermined point and the like. The rule content may be changed by the software provider, for reasons such as issues related to a specific country, e.g., Germany or United States, or industry, e.g., petroleum or shipping. A third-party vendor, such as a software distributor or an installer and integrator of the software provided by the software provider, can also change the rule content. Ultimately, the customer will change and/or adopt rules that suit the customer's needs, which may include customized rules.
The rule content can also be changed by a second party such as a vendor or a third party such as a customer. Presently these changes to the rule content may interfere with the default rule set delivered by the software provider and with any new content added by a second party and/or a third-party. As a result of such interference, it is usually not possible that rules can be enhanced and/or coexist during new releases or upgraded service packages of the software or the rules content. A customer had to decide whether it wanted to take the upgrades of the rules content or whether it wanted to maintain its own enhancements as presently implemented. The software rules content can be used in a computer application to determine how the computer application will react to certain inputs. Examples of computer applications include customer relationship management applications, enterprise resource planning including financial and operations applications, and small, medium, or large business applications, e.g., legacy applications, such as those provided by SAP.
As an example, in a business implementation, a business rule engine may have certain pricing rules and payment rules that determine the outcome result for a given input condition or value. For instance, a pricing rule may not allow a pricing discount of greater than 30%, while a payment rule may not allow for payments to be made after 180 days without incurring an interest charge. When this software is delivered to a vendor, or software provider partner, the vendor partner may also have its own pricing and payment rules for a particular industry. The partner's pricing and payment rules may differ from the software providers pricing and payment rules because of the particular industry. For instance, the vendor partner rule may not allow for discounts greater than 25% and may incur an interest charge when payments are later than 90 days. The customer in the particular industry may be more lenient than either the software provider or the partner and allow for discounts up to 50% in its pricing rules and may not incur a late fee until payments are 270 days late. Implementation of these differing rule sets can result in rule conflicts and collisions and difficulty in upgrading the software. There is a need for a system and method for realizing efficient rule content enhancement, allowing the enhancements from different parties to coexist and be updated (with new software releases or support packages) independently and to identify and eliminate conflicts or collisions between rules.